package com.ysq;

import java.util.HashMap;
import java.util.Map;
import java.util.function.BiConsumer;

public class MapPractice {
    public static void main(String[] args) {
        Map<String, String> data = new HashMap<>();
        data.put("小羊","A");
        data.put("小怕","B");
        data.put("小是","C");
        data.put("小羊羊","D");
        data.put("小出","A");
        data.put("的羊","C");
        data.put("F羊","C");
        data.put("e羊","D");
        data.put("小H","B");
        data.put("小让","B");
        data.put("rr","A");
        data.put("qq","A");
        data.put("出","B");
        //调用方法统计
       count(data);
    }
    public static void count(Map<String, String> data){
        /**
         * 1.创建一个新的map集合，用来存储统计投票结构
         * 2.遍历data集合（key---value)
         * ---3.将value(A)值拿出来，将value(A)当作key存储再新的集合中。
         * ---4.如果A已经存在，那么将A 对应的值加1
         * ---5.如果A不存在，那么直接将A---1，存储到新map中即可
         * 6.遍历新map集合，打印结果
         */

        Map<String, Integer> resultMap = new HashMap<>();
        data.forEach((k,v)->{
//            ---3.将value(A)值拿出来，将value(A)当作key存储再新的集合中。
//         * ---4.如果A已经存在，那么将A 对应的值加1
//         * ---5.如果A不存在，那么直接将A---1，存储到新map中即可
            //判断v是否已经再resultmapp中存在了
            boolean containsKey = resultMap.containsKey(v);
            if(containsKey){//存在
                //将老的值取出来+1，重新存进去
             Integer oldCount = resultMap.get(v);
             resultMap.put(v, oldCount + 1);
            }else{///不存在
                resultMap.put(v, 1);
            }
        });
//        6.遍历新map集合，打印结果
        resultMap.forEach((k,v)->{
         System.out.println(k+"---"+v);
        });
    }
}
